package com.yunxi.dealer.pojo;


import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.yunxi.core.web.DateJsonDeserializer;
import com.yunxi.sys.pojo.AttachVO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * <p>
 * 渠道商信息
 * </p>
 *
 * @author 
 * @since 2019-05-20
 */
@Data
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="Partner对象", description="渠道商信息")
public class PartnerVO implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "主键ID")
    private String partnerId;

    @ApiModelProperty(value = "渠道商代码")
    private String partnerCode;

    @ApiModelProperty(value = "渠道商简称")
    private String partnerSimpleName;

    @ApiModelProperty(value = "渠道商名称")
    private String partnerName;

    @ApiModelProperty(value = "归属销售组织")
    private String parentCompanyCode;

    @ApiModelProperty(value = "产品批售授权")
    private String productAuthCode;

    @ApiModelProperty(value = "国家")
    private String country;

    @ApiModelProperty(value = "省代码")
    private String province;

    @ApiModelProperty(value = "市代码")
    private String city;

    @ApiModelProperty(value = "区代码")
    private String region;

    @ApiModelProperty(value = "渠道商地址")
    private String addr;

    @ApiModelProperty(value = "邮政编码")
    private String postalCode;

    @ApiModelProperty(value = "法人代表")
    private String legalPerson;

    @ApiModelProperty(value = "联系人")
    private String linkMan;

    @ApiModelProperty(value = "联系电话")
    private String linkPhone;

    @ApiModelProperty(value = "手机")
    private String mobilePhone;

    @ApiModelProperty(value = "渠道商级别")
    private String partnerLevel;

    @ApiModelProperty(value = "统一信用代码")
    private String unionCreditCode;

    @ApiModelProperty(value = "销售企业邮箱")
    private String entwepriseMailbox;

    @ApiModelProperty(value = "传真")
    private String fax;

    @ApiModelProperty(value = "验收人")
    private String checkPerson;

    @ApiModelProperty(value = "验收完成时间")
    @JsonDeserialize(using = DateJsonDeserializer.class)
    private Date checkTime;

    @ApiModelProperty(value = "运营状态更改时间")
    @JsonDeserialize(using = DateJsonDeserializer.class)
    private Date runStatusChangetime;

    @ApiModelProperty(value = "是否自提")
    private String isAfhalen;

    @ApiModelProperty(value = "是否直送")
    private String isDirectSending;

    @ApiModelProperty(value = "坐标x")
    private String gpsX;

    @ApiModelProperty(value = "坐标y")
    private String gpsY;

    @ApiModelProperty(value = "创建时间")
    @JsonDeserialize(using = DateJsonDeserializer.class)
    private Date createTime;

    @ApiModelProperty(value = "创建人")
    private String createBy;

    @ApiModelProperty(value = "修改时间")
    @JsonDeserialize(using = DateJsonDeserializer.class)
    private Date updateTime;

    @ApiModelProperty(value = "修改人")
    private String updateBy;

    @ApiModelProperty(value = "状态 1入网 2退网 3冻结")
    private Integer status;

    @ApiModelProperty(value = "是否删除")
    private Integer isDel;

    @ApiModelProperty(value = "备注")
    private String memo;

    @ApiModelProperty(value = "统驭科目 1122010000 应收账款-国内")
    private String akont;

    @ApiModelProperty(value = "操作指示符")
    private String indicator;

    @ApiModelProperty(value = "预留字段1")
    private String zobl1;

    @ApiModelProperty(value = "预留字段2")
    private String zobl2;

    @ApiModelProperty(value = "预留字段3")
    private String zobl3;

    @ApiModelProperty(value = "预留字段4")
    private String zobl4;

    @ApiModelProperty(value = "预留字段5")
    private String zobl5;

    @ApiModelProperty(value = "省代码")
    private String regio;

    @ApiModelProperty(value = "市代码")
    private String cityCode;

    @ApiModelProperty(value = "区域")
    private String regionCode;

    @ApiModelProperty(value = "渠道商发票")
    private List<PartnerInvoiceVO> partnerInvoiceVOList = new ArrayList<>();

    @ApiModelProperty(value = "渠道商仓库")
    private List<PartnerStorageVO> partnerStorageVOList = new ArrayList<>();

    @ApiModelProperty(value = "渠道商账户")
    private List<PartnerAccountVO> partnerAccountVOList = new ArrayList<>();

    @ApiModelProperty(value = "渠道商二网信息")
    private List<PartnerTwonetsVO> partnerTwonetsVOList = new ArrayList<>();

    @ApiModelProperty(value = "业务类型编号")
    private String businessCode;

    @ApiModelProperty(value = "伙伴类型编号(账户组)")
    private String accountGroupCode;

    @ApiModelProperty(value = "伙伴类型属性编号")
    private List<String> accountPropCodeList = new ArrayList<>();

    @ApiModelProperty(value = "附件")
    private List<AttachVO> attachVOList = new ArrayList<>();

    @ApiModelProperty(value = "渠道商类型")
    private List<PartnerTypeVO> partnerTypeVOList = new ArrayList<>();

    @ApiModelProperty(value = "渠道商业务类型名称")
    private String bussName;

    @ApiModelProperty(value = "伙伴类型名称")
    private String accountGroupName;

    @ApiModelProperty(value = "渠道所属销售公司")
    private String companyName;

    private String fullAreaCode;
    //private String fullAreaCodeArr[];
    private String fullAreaName;
    //private String fullAreaNameArr[];
    private String productAuthCodeJson;
    private String type;
    private String accountPropName;

    @ApiModelProperty(value = "归属地区代码")
    private String mainAreaCode;

    @ApiModelProperty(value = "归属地区名称")
    private String mainAreaName;

    @ApiModelProperty(value = "管辖范围代码")
    private String manageAreaCode;

    @ApiModelProperty(value = "管辖范围名称")
    private String manageAreaName;

    @ApiModelProperty(value = "产品授权名称")
    private String productAuthName;

    @ApiModelProperty(value = "销售售后类型区分;1.pms; 2.ups")
    private String tenantId;

    public void setSortColumn(String sortColumn) {
        this.sortColumn = sortColumn.replaceAll("[A-Z]", "_$0").toLowerCase();
    }

    private String sortColumn;
    private String sortOrder;


    @ApiModelProperty(value = "区域负责人")
    private String areaManger;

    @ApiModelProperty(value = "功能类型")
    private String funType;

    @ApiModelProperty(value = "网点类型")
    private String webType;

    @ApiModelProperty(value = "网点曾用名")
    private String beforName;

    @ApiModelProperty(value = "区域负责人")
    private String regionPersonnel;

    @ApiModelProperty(value = "功能类型(服务中心/服务空间)")
    private String functionType;

    @ApiModelProperty(value = "网点类型(9号馆/2号馆) 9售后2销售和售后")
    private String branchType;

    @ApiModelProperty(value = "营业执照地址")
    private String businessLicenseAddress;

    @ApiModelProperty(value = "送货地址")
    private String deliveryAddress;

    @ApiModelProperty(value = "送货第一联系人")
    private String firstLintman;

    @ApiModelProperty(value = "送货第二联系人")
    private String secondLintman;

    @ApiModelProperty(value = "送货第一联系人联系方式")
    private String firstPhone;

    @ApiModelProperty(value = "送货第二联系人联系方式")
    private String secondPhone;

    @ApiModelProperty(value = "维修资质")
    private String maintenanceQualification;

    @ApiModelProperty(value = "营业时间(周一至周日)")
    private String businessDate;

    @ApiModelProperty(value = "营业时间(9:00~21:00)")
    private String businessTime;

    @ApiModelProperty(value = "网点服务电话(固话)")
    private String fixPhone;

    @ApiModelProperty(value = "合同/协议邮寄地址")
    private String contractMailingAddress;

    @ApiModelProperty(value = "电话")
    private String phone;

    @ApiModelProperty(value = "富余电容（Kw）")
    private String capacitance;

    @ApiModelProperty(value = "现有普通充电桩数量及功率（交流，慢充）")
    private String chargingPileDesc;

    @ApiModelProperty(value = "现有快充桩数量及功率（直流，快充）")
    private String fastChargeDesc;

    @ApiModelProperty(value = "图片")
    private List<AttachVO> imageVOList = new ArrayList<>();

    @ApiModelProperty(value = "分配线索所选车辆")
    private List<String> vehicleCodeList = new ArrayList<>();

    @ApiModelProperty(value = "分配线索所选车辆(前端传)")
    private String vehicleCodeListStr;

    private String businessCodeSelect;//下拉列表查询条件

    private String accountGroupCodeNot;

    private String businessCodeIn;
}
